Notebook d'implémentation en production

Adrian Rodriguez

Projet 7 parcours Ingénieur Machine Learning

Accès projet git

Plus d'informations


0. Contexte

Un rapport sur les erreurs de classification des races de chiens a été soumis à l’association de protection des animaux. Dans ce rapport, il est recommandé d’implémenter une solution de détection d’objet pour améliorer la qualité des photos. Cette solution doit isoler l’objet à classifier en procédant à un rognage. Cette nouvelle méthode fera appel au dernier YOLO, version 4.

Sources bibliographiques :

Prototype

Ce notebook présente la phase 1.


1. Chargement du modèle et des fichiers nécessaires


2. Méthode baseline sur méthode en production

Reprise à partir du rapport d'erreur de classification

2-1. Extraction des prédictions en erreur


2-3. Etude des prédictions en erreur

2-3-1. Visualisation d'un échantillon d'erreur

2-3-2. Retour sur le cas n°3

(Cas traité par l'association en fournissant leur propre jeu de donnée)

Dans ce cas, il s'agit d'une erreur humaine. La photo est dans le mauvais dossier (mauvaise race attribué). Cependant, l'ordinateur a identifié la bonne race.

2-3-3. Retour sur le cas n°12

(Cas traité à l'aide du détecteur d'objet)

En effet, il y a une erreur de prédiction. La race présentée n'est pas un Chihuahua. Renouvelons l'expérience avec la même photo, mais recadrée sur ce que l'on souhaite identifier.

Une fois la photo recadrée, la machine ne se trompe plus. Pour résoudre ce problème, nous pouvons former l'humain à mieux qualifier les photos à donner à la machine.

2-4. Conclusion sur la méthode actuellement en production

En corrigeant les erreurs vues dans les étapes précédentes, nous pouvons encore améliorer considérablement les performances de l'algorithme. Je recommande d'être soigneux dans le choix et l'identification des photos à donner en apprentissage pour la machine, mais aussi en production.


3. Méthode améliorée d'un détecteur d'objet (YOLOv4)

3-1. Construction de détecteur et chargement des poids de YOLOv4

3-2 Identification d'un objet

Le chien a bien été détecté. L'enjeu est maintenant d'isoler l'objet à classifier

3.3. Expérimentation sur le fichier des images prédites en erreur

3-3-1. Identification des chiens

3-3-2. Visualisation des résultats sur le même échantillon du rapport de classification

Les chiens sont effectivement bien isolés, et les races sont putôt bien prédites. Hormis la gestion des erreurs humaine de classification de races.

3-4. Généralisation sur le fichier de test

L'implémentation du l'algorithmes peut induire des erreurs qui n'aurait pas eu pas lieu. Cherchons à les quantifier.

3-4-1. Capture des objets sur l'échantillon de test

La précision de modèle n'a quasiment pas évolué (+ 0.1 %). Je vais comprendre les erreurs induites

3-4-2. Compréhension des erreurs induites

3-4-3. Objets détecté dans le cas n°4

Dans ce cas, le chien principal est identifié comme un cheval, il est naturellement exclu de la zone d'analyse par l'algorithme. La machine identifie donc le chien en fond d'image.

3-4-4. Objets détecté dans le cas n°8

Certainement du fait du grillage, l'animal est identifié comme un mouton. L'image est envoyé d'origine au classifieur. Dans ce cas précis et dans un autre étape, nous pourrions être tenter de reconstruire l'image.

3-4-5. Objets détecté dans le cas n°9

Ici, le chien prenant le plus de place sur la photos et reconnu comme race par les données, n'est pas reconnue comme chien principal envoyé à l'algorithme.

3-5. Rapport global de classification


4. Création des photos rognées pour apprentissage

Bloc 4 exécuté 1 fois seulement